4.          Given Bob(x) = `^`(2, x);  and Milly(x) = `+`(`*`(`^`(x, 2)), 1);   , determine: 

>
 

> Bob := proc (x) options operator, arrow, function_assign; `^`(2, x) end proc; 1; Milly := proc (x) options operator, arrow, function_assign; `+`(`*`(`^`(x, 2)), 1) end proc
 

 

Typesetting:-mprintslash([Bob := proc (x) options operator, arrow, function_assign; `^`(2, x) end proc], [proc (x) options operator, arrow, function_assign; `^`(2, x) end proc])
Typesetting:-mprintslash([Milly := proc (x) options operator, arrow, function_assign; `+`(`*`(`^`(x, 2)), 1) end proc], [proc (x) options operator, arrow, function_assign; `+`(`*`(`^`(x, 2)), 1) end p... (4.4.1)
 

> `/`(`*`(Milly(x)), `*`(Bob(x)));
 

`/`(`*`(`+`(`*`(`^`(x, 2)), 1)), `*`(`^`(2, x))) (4.4.2)
 

> sqrt(Milly(x));
 

`*`(`^`(`+`(`*`(`^`(x, 2)), 1), `/`(1, 2))) (4.4.3)
 

> (`@`(Bob, Milly))(x);
 

`^`(2, `+`(`*`(`^`(x, 2)), 1)) (4.4.4)
 

> solve(Bob(y) = x, y);
 

`/`(`*`(ln(x)), `*`(ln(2))) (4.4.5)
 

> BobInv := proc (x) options operator, arrow, function_assign; `/`(`*`(ln(x)), `*`(ln(2))) end proc; -1; 'BobInv(x)'
 

BobInv(x) (4.4.6)
 

> `+`(BobInv(2), `/`(1, `*`(Milly(4))));
 

`/`(18, 17) (4.4.7)
 

>